package CapaNegocio;

import CapaConexion.Conexion;
import CapaDTO.CerrarMes;
import CapaDTO.Pago;
import CapaDTO.Sucursales;
import CapaDTO.Usuarios;
import Config.config;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class NegocioInsert {

    private Conexion cnn;

    /**
     * Metodo para configurar la Conexion
     */
    public void configurarConexion() {
        cnn = new Conexion();
        try {
            config cf = new config();

            this.cnn.setDriver(cf.getDriverOracle());
            this.cnn.setNombreBaseDatos(cf.getbDOracle());
            this.cnn.setUser(cf.getUsuario());
            this.cnn.setPassword(cf.getContraseña());
        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private void configurarConexionAccess() {
        cnn = new Conexion();
        try {
            config cf = new config();

            this.cnn.setDriver(cf.getDriver());
            this.cnn.setNombreBaseDatos(cf.getBD());

        } catch (IOException ex) {
            Logger.getLogger(Negocio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void agregarPago(Pago pag) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("pago");

        String SQL="Insert into " + this.cnn.getNombreTabla()
                + "(numero_presupuesto,"
                + "doc_rut,"
                + "paciente_rut,"
                + "pag_num_boleta,"
                + "liquidacion,"
                + "laboratorio,"
                + "bono,"
                + "rayosD,"
                + "fecha,"
                + "guardadoEl,"
                + "detalle,"
                + "COD_SUCURSAL,"
                + "IngresoPor,"
                + "ValorPrestacion) "
                + " Values("
                + pag.getNumero_presupuesto() + ",'"
                + pag.getDoc_rut() + "','"
                + pag.getPaciente_rut() + "',"
                + pag.getPag_num_boleta() + ","
                + pag.getLiquidacion() + ","
                + pag.getLaboratorio() + ","
                + pag.getBono() + ","
                + pag.getRayosDarsalud() + ",'"
                + pag.getFecha() + "','"
                + pag.getGuardadoEl() + "','"
                + pag.getDetalle() + "',"
                + pag.getCOD_SUCURSAL() + ",'"
                + pag.getIngresoPor() + "',"
                + pag.getValorPrestacion()+")";

//        System.out.println(SQL);

        this.cnn.setSentenciaSQL(SQL);
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }

//     public void ModificarPago(Pago pag) {
//        this.configurarConexionAccess();
//        this.cnn.setNombreTabla("pago");
//        this.cnn.setSentenciaSQL("UPDATE " + this.cnn.getNombreTabla()
//                + " SET " +
//                " numero_presupuesto="+pag.getNumero_presupuesto()+ ","+
//                " doc_rut='"+pag.getDoc_rut()+"',"+
//                " paciente_rut='"+pag.getPaciente_rut()+"',"+
//                " pag_num_boleta="+pag.getPag_num_boleta()+","+
//                " liquidacion="+pag.getLiquidacion()+","+
//                " laboratorio="+pag.getLaboratorio()+"," +
//                " fecha='"+pag.getFecha()+"',"+
//                " detalle='"+pag.getDetalle()+"'," +
//                " COD_SUCURSAL="+pag.getCOD_SUCURSAL()+
//                " where " +
//                " pd_id="+pag.getPd_id());
//        //pagoTotal....
//        this.cnn.setEsSelect(false);
//        this.cnn.conectar();
//        this.cnn.cerrarConexion();
//    }
    public void ModificarPrivilegios(Usuarios user) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("Usuarios");
        this.cnn.setSentenciaSQL("UPDATE " + this.cnn.getNombreTabla()
                + " SET "
                + " pass='" + user.getPass() + "',"
                + " cambioSucursal=" + user.isCambioSucursal() + ","
                + " bonosViaje=" + user.isBonosViaje() + ","
                + " admin=" + user.isAdmin() + ","
                + " guardar=" + user.isGuardar() + ","
                + " verbono=" + user.isVerbono() + ","
                + " ver=" + user.isVer() + ","
                + " liquiMes=" + user.isLiquiMes() + ","
                + " liquiAno=" + user.isLiquiAño() + ","
                + " liquiTodos=" + user.isLiquiTodos() + ","
                + " liquiGerencia=" + user.isLiquiGerencia() + ","
                + " eliminar=" + user.isEliminar() + ","
                + " eliminarMes=" + user.isEliminarMes() + ","
                + " cerrarMes=" + user.isCerrarMes() + ","
                + " apePat='" + user.getApePat() + "',"
                + " apeMat='" + user.getApeMat() + "',"
                + " Nombre='" + user.getNombre() + "',"
                + " cargo='" + user.getCargo() + "'"
                + " where "
                + " usuario='" + user.getUsuario() + "'");
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }

    public void AgregarUser(Usuarios user) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("Usuarios");
        this.cnn.setSentenciaSQL("Insert into " + this.cnn.getNombreTabla()
                + "(usuario,"
                + "pass,"
                + "cambioSucursal,"
                + " bonosViaje,"
                + " admin,"
                + " guardar,"
                + " verbono,"
                + " ver,"
                + " liquiMes,"
                + " liquiAno,"
                + " liquiTodos,"
                + " liquiGerencia,"
                + " eliminar,"
                + " eliminarMes,"
                + " cerrarMes,"
                + " apePat,"
                + " apeMat,"
                + " Nombre,"
                + " cargo"
                + ") "
                + " Values('"
                + user.getUsuario() + "','"
                + user.getPass() + "',"
                + user.isCambioSucursal() + ","
                + user.isBonosViaje() + ","
                + user.isAdmin() + ","
                + user.isGuardar() + ","
                + user.isVerbono() + ","
                + user.isVer() + ","
                + user.isLiquiMes() + ","
                + user.isLiquiAño() + ","
                + user.isLiquiTodos() + ","
                + user.isLiquiGerencia() + ","
                + user.isEliminar() + ","
                + user.isEliminarMes() + ","
                + user.isCerrarMes() + ",'"
                + user.getApePat() + "','"
                + user.getApeMat() + "','"
                + user.getNombre() + "','"
                + user.getCargo()+ "')");
        
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }
    public void AgregarLaFlorida() {
        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL("ALTER TABLE pago ADD ValorPrestacion int");
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }
    
    public void ModificarPassUser(Usuarios user) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("Usuarios");
        this.cnn.setSentenciaSQL("UPDATE " + this.cnn.getNombreTabla()
                + " SET "
                + " pass='" + user.getPass() + "'"
                + " where "
                + " usuario='" + user.getUsuario() + "'");
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }
    public void ModificarSucursal(Sucursales suc) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("Sucursales");
        this.cnn.setSentenciaSQL("UPDATE " + this.cnn.getNombreTabla()
                + " SET "
                + " Retencion="+suc.getRetencion()+ ","
                + " Participacion=" + suc.getParticipacion()
                + " where "
                + " Sucursales='" + suc.getSucursales() + "'");
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }

    public void EliminiarUser(String user) {
        this.configurarConexionAccess();

        this.cnn.setSentenciaSQL("DELETE FROM Usuarios where "
                + " usuario='" + user + "'");
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();

    }

    public void EliminiarCierreMes(String mes, String ano, String sucursal) {
        this.configurarConexionAccess();

        this.cnn.setSentenciaSQL("DELETE FROM CierreMes where "
                + " mes like '%" + mes + "%'"
                + " AND ano=" + ano + ""
                + " AND sucursal=" + sucursal);
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();

    }

    public void EliminiarLiquidacion(String reg, String sucursal) {

        this.configurarConexionAccess();
        this.cnn.setSentenciaSQL("DELETE FROM pago where "
                + " pd_id=" + reg
                + " AND COD_SUCURSAL=" + sucursal);
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();

    }

    public void ElimSave(Pago pag, String ElimPor, String razon, String Fecha) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("ElimSave");
        this.cnn.setSentenciaSQL("Insert into " + this.cnn.getNombreTabla()
                + "(Pd_id,numero_presupuesto,"
                + "doc_rut,"
                + "paciente_rut,"
                + "pag_num_boleta,"
                + "liquidacion,"
                + "laboratorio,"
                + "bono,"
                + "rayosD,"
                + "fecha,"
                + "guardadoEl,"
                + "detalle,"
                + "COD_SUCURSAL,"
                + "IngresoPor,"
                + "ElimPor,"
                + "razon,"
                + "ElimFecha) "
                + " Values("
                + pag.getPd_id() + ","
                + pag.getNumero_presupuesto() + ",'"
                + pag.getDoc_rut() + "','"
                + pag.getPaciente_rut() + "',"
                + pag.getPag_num_boleta() + ","
                + pag.getLiquidacion() + ","
                + pag.getLaboratorio() + ","
                + pag.getBono() + ","
                + pag.getRayosDarsalud() + ",'"
                + pag.getFecha() + "','"
                + pag.getGuardadoEl() + "','"
                + pag.getDetalle() + "',"
                + pag.getCOD_SUCURSAL() + ",'"
                + pag.getIngresoPor() + "','"
                + ElimPor + "','"
                + razon + "','"
                + Fecha + "')");
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }

    public void CerrarMes(CerrarMes CM) {
        this.configurarConexionAccess();
        this.cnn.setNombreTabla("CierreMes");
        this.cnn.setSentenciaSQL("Insert into " + this.cnn.getNombreTabla()
                + "(mes,ano,estado,realizadoPor,sucursal,cerradoEl,porsentaje,retencion) "
                + " Values('"
                + CM.getMes() + "',"
                + CM.getAño() + ","
                + CM.isEstado() + ",'"
                + CM.getRealizadoPor() + "',"
                + CM.getSucursal() + ",'"
                + CM.getCerradoEl() + "','"
                + CM.getPorsentaje() + "','"
                + CM.getRetencion() + "')");
        //pagoTotal....
        this.cnn.setEsSelect(false);
        this.cnn.conectar();
        this.cnn.cerrarConexion();
    }
}
